package com.Dao;

import com.bean.User;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @author Lenovo
 * @date 2022/1/5
 */
// 操作账户的操作:题目仅要求查询，不需要增、删、改，故需要属性文件必须存在
public class UserDao {
    private String sourcePath = "src/properties/login.properties";

    private String[] exactStringInfo(String line){
        String[]tmp=new String[2];
        if(line==null||line.equals(""))
            return tmp;
        int index = line.indexOf("=");
        if(index>0){
            tmp[0] = line.substring(0, index);
            tmp[1] = line.substring(index+1, line.length());
        }
        return tmp;
    }

    public List<User>queryUser() {
        List<User>lst = new ArrayList<>();
        File file= new File(this.sourcePath);
        // 处理文件不存在情况
        if(!file.exists()){
            try{
                file.createNewFile();
                System.out.println("属性文件不存在，请先将学生添加入库");
            }catch (IOException exp){
               //DO NOTHING
                System.out.println("当前尝试创建并以失败告终");
            }finally {
                return lst;
            }
        }
        // 获取数据过程
        try {
            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String tmpStr, tmpInfo[];
            while ((tmpStr = bufferedReader.readLine()) != null) {
                tmpInfo = exactStringInfo(tmpStr);
                if (tmpInfo[0].equals("")) {
                    System.out.println(tmpStr + ":不符合规则，不予添加");
                } else {
                    lst.add(new User(tmpInfo[0], tmpInfo[1]));
                }
            }
            fileReader.close();
        }catch (IOException e){
            e.printStackTrace();
        }
        return lst;
    }
}
